<!DOCTYPE html>
<html lang="zh-CN">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>代码文件与类说明文档</title>
    <style>
        body {
            font-family: sans-serif;
            margin: 20px;
            background-color: #f4f4f4;
            color: #333;
        }

        h1 {
            text-align: center;
            color: #333;
        }

        .file-entry {
            background-color: #fff;
            border: 1px solid #ddd;
            border-radius: 5px;
            margin-bottom: 15px;
            padding: 15px;
            box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.1);
        }

        .file-name {
            font-size: 1.2em;
            font-weight: bold;
            color: #007bff;
            margin-bottom: 10px;
        }

        .class-list {
            list-style-type: none;
            padding-left: 0;
        }

        .class-list li {
            background-color: #e9ecef;
            border: 1px solid #ced4da;
            border-radius: 3px;
            margin-bottom: 5px;
            padding: 8px;
        }

        .class-name {
            font-weight: bold;
        }

        .enum-name {
            font-weight: bold;
            font-style: italic;
        }

        .extension-name {
            font-weight: bold;
            color: #28a745;
        }

        .no-classes {
            color: #777;
        }
    </style>
</head>

<body>
    <h1>lib 目录代码文件与类说明文档</h1>
    <div id="documentation">
        <!-- 文件和类信息将在这里动态插入 -->
    </div>
    <script>
        const documentation = [
            { file: "lib/jm_flutter.dart", classes: ["JmApp", "JmFlutter"] },
            { file: "lib/generated/assets.dart", classes: ["Assets"] },
            { file: "lib/src/config.dart", classes: ["JmConfig"] },
            { file: "lib/src/common/common.dart", classes: [] },
            { file: "lib/src/common/utils/show.dart", classes: ["ShowTheme", "Show"] },
            { file: "lib/src/common/utils/device_info.dart", classes: ["MyDeviceInfo"] },
            { file: "lib/src/common/utils/i18n.dart", classes: ["I18n", "AppLanguage"], extensions: ["StringI18n"] },
            { file: "lib/src/common/utils/shortcut.dart", classes: [] },
            { file: "lib/src/common/utils/app_version.dart", classes: ["AppVersion"] },
            { file: "lib/src/common/utils/screen_util.dart", classes: ["MyScreen", "ScreenUtil"] },
            { file: "lib/src/common/utils/apm.dart", classes: ["Apm (commented out)"] },
            { file: "lib/src/common/utils/storage.dart", classes: ["Storage", "MyStorage"] },
            { file: "lib/src/common/utils/url.dart", classes: [] },
            { file: "lib/src/common/utils/share.dart", classes: [] },
            { file: "lib/src/common/utils/encrypt.dart", classes: ["EncryptUtil"] },
            { file: "lib/src/common/servers/result.dart", classes: ["Result"] },
            { file: "lib/src/common/servers/api.dart", classes: ["Api"], enums: ["ApiMethod", "ApiError"] },
            { file: "lib/src/common/servers/my_url.dart", classes: ["MyUrl"] },
            { file: "lib/src/common/servers/server_result.dart", classes: ["ServerResult<T>"] },
            { file: "lib/src/common/servers/error.dart", classes: ["ErrorCode"] },
            { file: "lib/src/ui/ui.dart", classes: [] },
            { file: "lib/src/ui/resources/text_styles.dart", classes: ["JmTextStyle"] },
            { file: "lib/src/ui/resources/colors.dart", classes: ["JmColorsData"], enums: ["StatusBarType"] },
            { file: "lib/src/ui/resources/styles.dart", classes: [] },
            { file: "lib/src/ui/resources/jm_style.dart", classes: ["JmStyle"] },
            { file: "lib/src/ui/resources/resources.dart", classes: [] },
            { file: "lib/src/ui/resources/cupertino.dart", classes: [] },
            { file: "lib/src/ui/resources/assets.dart", classes: ["JmAssetsData"] },
            { file: "lib/src/ui/widget/my_text.dart", classes: ["MyText"] },
            { file: "lib/src/ui/widget/my_div.dart", classes: ["MyDiv"] },
            { file: "lib/src/ui/widget/widget.dart", classes: [] },
            { file: "lib/src/ui/widget/column_centered.dart", classes: ["ColumnCentered"] },
            { file: "lib/src/ui/widget/my_bottom_navbar.dart", classes: ["MyBottomNavBar", "_MyBottomNavBarState"] },
            { file: "lib/src/ui/widget/my_scaffold.dart", classes: ["MyScaffoldTheme", "MyScaffold"] },
            { file: "lib/src/ui/widget/my_textfield.dart", classes: ["MyTextField", "_MyTextFieldState"] },
            { file: "lib/src/ui/widget/my_inkwell.dart", classes: ["MyInkWell", "_MyInkWellState"], enums: ["MyInkWellAnimation"] },
            { file: "lib/src/ui/widget/my_hide.dart", classes: ["MyHide", "_MyHideState"] },
            { file: "lib/src/ui/widget/my_image.dart", classes: ["MyImage"], enums: ["MyImageType"] },
            { file: "lib/src/ui/widget/my_bottom_bar.dart", classes: ["MyBottomBar"] },
            { file: "lib/src/ui/widget/my_info.dart", classes: ["MyInfo"] },
            { file: "lib/src/ui/widget/my_card.dart", classes: ["MyCardTheme", "MyCard"] },
            { file: "lib/src/ui/widget/my_systemui.dart", classes: ["MySystemUI"] },
            { file: "lib/src/ui/widget/my_face.dart", classes: ["MyFace", "_MyFaceState"] },
            { file: "lib/src/ui/widget/my_svg.dart", classes: ["MySvg"] },
            { file: "lib/src/ui/widget/my_visibility.dart", classes: ["MyVisibility"] },
            { file: "lib/src/ui/widget/my_field.dart", classes: ["MyField", "_MyFieldState"], enums: ["MyFieldBorder", "_borderType"] },
            { file: "lib/src/ui/widget/row_centered.dart", classes: ["RowCentered"] },
            { file: "lib/src/ui/widget/my_icon.dart", classes: [] },
            { file: "lib/src/ui/widget/my_container.dart", classes: ["MyContainer"] },
            { file: "lib/src/ui/widget/seting_item.dart", classes: ["SetingItem", "_SetingItemState"] },
            { file: "lib/src/ui/widget/button/my_icon_textbutton.dart", classes: ["MyIconTextButton"] },
            { file: "lib/src/ui/widget/button/my_button.dart", classes: ["MyButton"], enums: ["MyButtonType", "MyButtonSize"] },
            { file: "lib/src/ui/widget/button/my_button_theme.dart", classes: ["MyButtonTheme"] },
            { file: "lib/src/ui/widget/button/my_iconbutton.dart", classes: ["MyIconButton"] },
            { file: "lib/src/ui/widget/button/my_image_button.dart", classes: ["MyImageButton"] },
            { file: "lib/src/ui/widget/button/my_bigbutton.dart", classes: ["MyBigButton"] },
            { file: "lib/src/ui/widget/dialog/my_dialog.dart", classes: ["MyDialogTheme", "MyDialog", "_MyDialogActionWidget", "MyDialogAction"] },
            { file: "lib/src/ui/widget/dialog/my_textfield_dialog.dart", classes: ["MyTextFieldDialog"] },
            { file: "lib/src/ui/widget/dialog/my_action_sheet.dart", classes: ["MyActionSheetAction", "MyActionSheet"] },
            { file: "lib/src/ui/widget/item/my_item.dart", classes: ["MyItem"], enums: ["MyItemType", "DividingLineType"] },
            { file: "lib/src/ui/widget/item/my_menu_item.dart", classes: ["MyMenuItem", "_MyMenuItemState", "MyMenuDivider"] },
            { file: "lib/src/ui/widget/pop/my_pop_menu.dart", classes: ["MyPopMenu", "PopContextMenu", "_PopContextMenuState"] },
            { file: "lib/src/ui/widget/pop/my_pop_menu_item.dart", classes: ["MyPopMenuItem", "_MyPopMenuItemState"] },
            { file: "lib/src/ui/widget/pop/my_pull_down_button.dart", classes: ["MyPullDownButton", "_MyPullDownButtonState"] },
            { file: "lib/src/ui/page/init_page.dart", classes: ["InitPage", "_InitPageState"] },
            { file: "lib/src/ui/page/my_user_agreement_page.dart", classes: ["MyUserAgreementPage", "_MyUserAgreementPageState"] },
            { file: "lib/src/ui/page/page.dart", classes: [] },
            { file: "lib/src/ui/page/my_privacy_policy_page.dart", classes: ["MyPrivacyPolicyPage", "_MyPrivacyPolicyPageState"] },
            { file: "lib/src/ui/page/app_language_page.dart", classes: ["MyAppLanguagePage", "_MyAppLanguagePageState"] },
            { file: "lib/src/ui/page/about_page.dart", classes: ["AboutPage", "_AboutPageState"] },
            { file: "lib/src/ui/page/developer/my_debug_page.dart", classes: ["MyDebugPage", "_DebugPageState"] },
            { file: "lib/src/ui/page/developer/developer.dart", classes: [] },
            { file: "lib/src/ui/page/developer/debug_overlay.dart", classes: ["DebugOverLay"], enums: ["DebugOverLaySize"] },
            { file: "lib/src/ui/page/developer/widget/log_widget.dart", classes: ["LogWidget", "_LogWidgetState"] },
            { file: "lib/src/ui/page/developer/widget/log_item.dart", classes: ["JmLogDescItem"] },
            { file: "lib/src/ui/page/developer/widget/overlay_log_widget.dart", classes: ["OverlayLogWidget", "_OverlayLogWidgetState"] },
            { file: "lib/src/ui/page/developer/common/config.dart", classes: [] },
            { file: "lib/src/ui/page/developer/common/common.dart", classes: [] },
            { file: "lib/src/ui/page/app_file_management/app_file_page.dart", classes: ["AppFilePage", "_AppFilePageState"] },
            { file: "lib/src/ui/page/app_file_management/app_file_txt_view_page.dart", classes: ["AppTextFileViewPage", "_AppTextFileViewPageState"] },
            { file: "lib/src/ui/page/app_file_management/app_file_management.dart", classes: [] },
            { file: "lib/src/ui/page/app_file_management/widget/file_list_item.dart", classes: ["AppFileListItem", "_AppFileListItemState"] },
            { file: "lib/src/ui/page/app_file_management/widget/directory_navigation_bar.dart", classes: ["AppDirectoryNavigationBar"] },
            { file: "lib/src/ui/page/app_file_management/util/app_file_util.dart", classes: ["AppFileUtil"] },
            { file: "lib/src/ui/page/app_file_management/model/app_file_desc.dart", classes: ["AppFileDesc"], enums: ["AppFileType"] },
            { file: "lib/src/ui/page/app_file_management/model/app_file_list_adapter.dart", classes: ["AppFileListAdapter"] },
            { file: "lib/src/ui/page/app_file_management/controller/selection_controller.dart", classes: ["AppFileSelectionController"] },
            { file: "lib/src/ui/routers/routes.dart", classes: ["JmPages"] },
            { file: "lib/src/ui/routers/jm_page.dart", classes: ["JmPage"] }
        ];

        const container = document.getElementById('documentation');
        documentation.forEach(entry => {
            const fileDiv = document.createElement('div');
            fileDiv.className = 'file-entry';

            const fileNameP = document.createElement('p');
            fileNameP.className = 'file-name';
            fileNameP.textContent = entry.file;
            fileDiv.appendChild(fileNameP);

            if (entry.classes && entry.classes.length > 0 || entry.enums && entry.enums.length > 0 || entry.extensions && entry.extensions.length > 0) {
                const classUl = document.createElement('ul');
                classUl.className = 'class-list';

                if (entry.classes) {
                    entry.classes.forEach(cls => {
                        const classLi = document.createElement('li');
                        const classSpan = document.createElement('span');
                        classSpan.className = 'class-name';
                        classSpan.textContent = cls;
                        classLi.appendChild(document.createTextNode('Class: '));
                        classLi.appendChild(classSpan);
                        classUl.appendChild(classLi);
                    });
                }

                if (entry.enums) {
                    entry.enums.forEach(enm => {
                        const enumLi = document.createElement('li');
                        const enumSpan = document.createElement('span');
                        enumSpan.className = 'enum-name';
                        enumSpan.textContent = enm;
                        enumLi.appendChild(document.createTextNode('Enum: '));
                        enumLi.appendChild(enumSpan);
                        classUl.appendChild(enumLi);
                    });
                }

                if (entry.extensions) {
                    entry.extensions.forEach(ext => {
                        const extLi = document.createElement('li');
                        const extSpan = document.createElement('span');
                        extSpan.className = 'extension-name';
                        extSpan.textContent = ext;
                        extLi.appendChild(document.createTextNode('Extension: '));
                        extLi.appendChild(extSpan);
                        classUl.appendChild(extLi);
                    });
                }
                fileDiv.appendChild(classUl);
            } else {
                const noClassesP = document.createElement('p');
                noClassesP.className = 'no-classes';
                noClassesP.textContent = '此文件没有直接定义的类、枚举或扩展。';
                fileDiv.appendChild(noClassesP);
            }
            container.appendChild(fileDiv);
        });
    </script>
</body>

</html>